/***************************************************************************************** 
*                                     TinyRtos51 
*                                The Real-Time Kernel 
*                              Copyright(c) 2024 fanxsp
*                         SPDX-License-Identifier: APACHE-2.0
*       This software is subject to an open source license and is distributed by fanxsp,
*       pursuant to the terms of the Apache License.
******************************************************************************************/
/***************************************************************************************** 
*               TinyRtos51 配置文件 
* Author: fanxsp
* Revision: 1.00
* Date: 2023-05-03
* Revision: 1.20
* Date: 2024-04-18
* 新增reentrant函数、挂起指定任务、动态优先级的支持
******************************************************************************************/
/*  任务   */
/* OSTASKS+OSBINSEMS+OSSEMS+OSEFLAGS+OSMSGQS < 256 */
#define OSTASKS	              3       // 任务数 ID: 0~OSTASKS-1
#define OSMETHOD              1       // 调度模式 0-协作式 1-抢先式

/*  定时  */
#define OSBYTES_OF_DELAYS     1       // 延时计数器字节数(0,1,2) 默认为1    0-禁止延时及超时
#define OSTIMER_PRESCALAR     100     // 配置OSTimer()的预分频(0,1-255))  0,1-禁用预分频

/*  存储位置    */
#define OSLOC_LIST         idata      // List链表存储位置
#define OSLOC_TCB          idata      // TCB 任务控制块存储位置
#define OSLOC_STACKS       pdata      // 任务堆栈存储位置
#define OSLOC_BINSEM       idata      // BinSem ECB存储位置
#define OSLOC_SEM          idata      // Sem ECB存储位置
#define OSLOC_EFLAG        idata      // EFlag ECB存储位置
#define OSLOC_MSGQ         idata      // MsgQ ECB存储位置
#define OSLOC_MSGQ_BUF     xdata      // MsgQ 队列存储位置

/* reentrant 函数支持 */
#define OSENABLE_REENTRANT_SMALL  0   // 1-支持SMALL REENTRANT函数  
#define OSENABLE_REENTRANT_LARGE  0   // 1-支持LARGE REENTRANT函数

/* 任务级挂起指定的任务 */
#define OSENABLE_SUSPENDID        0   // 1-允许任务级挂起指定的任务(OSTaskSuspendID())

/* 动态优先级支持 */
#define OSENABLE_SETPRIO          0   // 1-允许在运行时改变任务优先级(OSTaskSetPrio() OSIntSetPrio())

/* 二值信号量  */
#define OSBINSEMS                 1   // 二值信号量个数 0-禁用二值信号量  ID:0~OSBINSEMS-1

/* 信号量  */
#define OSSEMS                    0   // 信号量个数    0-禁用信号量     ID:0~OSSEMS-1 

/* 事件标志  */
#define OSEFLAGS                  0   // 事件标志个数   0-禁用事件标志   ID:0~OSEFLAGS-1

/* 消息队列  */
#define OSMSGQS                   2   // 消息队列个数   0-禁用消息队列   ID:0~OSMSGQS-1

/* 错误检查  */
#define OSENABLE_ERROR_CHECKING   1   // 0 - 禁止运行时错误检查  1 - 使能运行时错误检查 


